package com.zxjbyte.yiyi.framework.common.util;

import cn.hutool.core.date.DateUtil;
import lombok.experimental.UtilityClass;

import java.time.Duration;
import java.time.Instant;

/**
 * 扩展hutool的DateUtil
 *
 * @Author zhangxingjia
 * @Date 2025/5/6 10:49
 * @Version: 1.0
 */
@UtilityClass
public class DateXUtil extends DateUtil {

    /**
     * 时间戳（毫秒）偏移指定秒数（支持正负）
     * @param initialTimestamp 初始时间戳（毫秒）
     * @param offsetSeconds    偏移秒数（正=向后，负=向前）
     * @return 偏移后的时间戳（毫秒）
     */
    public static long timestampOffSeconds(long initialTimestamp, long offsetSeconds) {
        Instant initialInstant = Instant.ofEpochMilli(initialTimestamp);
        Duration offsetDuration = Duration.ofSeconds(offsetSeconds); // 自动处理正负
        Instant newInstant = initialInstant.plus(offsetDuration);    // 正=加，负=减
        return newInstant.toEpochMilli();
    }
}
